<?php //
include_once("Conexion.php");

//Declaracion
class M_Persona {
    
    private $id_persona;
    private $nombre;
    private $apellidoPaterno;
    private $apellidoMaterno;
    private $dni;
    private $id_tipopersona;
    private $razonsocial;
    private $celular;
    private $telefono;
    private $direccion;
    private $imagen;
    private $usuCreac;
    private $usuModif;
    
     //Metodo utilizado para obtener todos los Roles
    function listarPersonas_Todos() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT p.id_persona, p.nombres, p.apellido_paterno, p.apellido_materno, p.dni, 
        p.id_tipo_persona ,tp.nombre as tipopersona , p.razon_social, p.direccion1, 
       p.celular, p.telefono, p.imagen
  FROM tbl_persona p
  JOIN tbl_persona_tipo tp on p.id_tipo_persona = tp.id_tipo_persona
  WHERE p.eliminado = false ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    //V_Mosos
    function listarMosos_Todos() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " select * from tbl_persona where id_tipo_persona=2 ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
      //Metodo utilizado para obtener todos los Roles
    function listarPersonas_UNO() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT p.id_persona, p.nombres, p.apellido_paterno, p.apellido_materno, p.dni, 
        p.id_tipo_persona ,tp.nombre as tipopersona , p.razon_social, p.direccion1, 
       p.celular, p.telefono, p.imagen
  FROM tbl_persona p
  JOIN tbl_persona_tipo tp on p.id_tipo_persona = tp.id_tipo_persona
  WHERE p.eliminado = false and p.id_persona=$this->id_persona";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
      //Metodo utilizado para insertar una Rol en la base de datos
    function insertPersona() {
       
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
         
            $sql="INSERT INTO tbl_persona(
             nombres, apellido_paterno, apellido_materno, dni, 
            eliminado, id_tipo_persona, creacion, creadopor, razon_social, direccion1, celular, telefono, 
            imagen)
    VALUES ('$this->nombre','$this->apellidoPaterno','$this->apellidoMaterno','$this->dni',
            false,$this->id_tipopersona,now(),'$this->usuCreac','$this->razonsocial','$this->direccion', 
            '$this->celular','$this->telefono','$this->imagen')";
            
            
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
              //  pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
               // pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        return $rpta;
    }
      //metodo utilizado para eliminar un rol
     function deletePersona() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
           $sql = " update tbl_persona set eliminado = true  where id_persona = $this->id_persona";
          
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
      //Metodo utilizado para actualizar un ROL
    function actualizarPersona() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
        $sql="UPDATE tbl_persona
   SET  nombres='$this->nombre', apellido_paterno='$this->apellidoPaterno', apellido_materno='$this->apellidoMaterno', 
       dni='$this->dni', eliminado=false, id_tipo_persona=$this->id_tipopersona, 
       actualizado=now(), actualizadopor='$this->usuModif', razon_social='$this->razonsocial', direccion1='$this->direccion', 
       celular='$this->celular', telefono='$this->telefono', imagen='$this->imagen'
 WHERE id_persona=$this->id_persona";
         
         
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
    
    function searchPersona() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_persona 
            where id_persona=$this->id_persona and eliminado=false ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {
                
            }
            try {
                pg_close($cn);
            } catch (exception $e) {
                
            }
        }
        return $registros;
    }
    
        //Get y Set de la clase
        public function getId_Persona(){
		return $this->id_persona;
	}

	public function setId_Persona($id_persona){
		$this->id_persona = $id_persona;
	}

	public function getNombre(){
		return $this->nombre;
	}

	public function setNombre($nombre){
		$this->nombre = $nombre;
	}

	public function getApellidoPaterno(){
		return $this->apellidoPaterno;
	}

	public function setApellidoPaterno($apellidoPaterno){
		$this->apellidoPaterno = $apellidoPaterno;
	}

	public function getApellidoMaterno(){
		return $this->apellidoMaterno;
	}

	public function setApellidoMaterno($apellidoMaterno){
		$this->apellidoMaterno = $apellidoMaterno;
	}

	public function getDni(){
		return $this->dni;
	}

	public function setDni($dni){
		$this->dni = $dni;
	}
        
	public function getId_TipoPersona(){
		return $this->id_tipopersona;
	}

	public function setId_TipoPersona($id_tipopersona){
		$this->id_tipopersona = $id_tipopersona;
	}
        public function setRazonSocial($razonsocial){
		$this->razonsocial = $razonsocial;
	}
        public function setCelular($celular){
		$this->celular = $celular;
	}
        public function setTelefono($telefono){
		$this->telefono = $telefono;
	}
        public function setDireccion($direccion){
		$this->direccion = $direccion;
	}
        public function setImagen($imagen){
		$this->imagen = $imagen;
	}
          function setUsuCreac($usuario) {
        $this->usuCreac = $usuario;
    }
    
    function setUsuModif($usuario) {
        $this->usuModif = $usuario;
    }
        
}
?>